#pragma once

#include <limits>
#include <memory>
#include <mutex>

#include <base/macros.h>
#include <croutine/croutine.h>


class ProcessorContext {
 public:
  virtual void Shutdown();
  virtual std::shared_ptr<CRoutine> NextRoutine() = 0;
  virtual void Wait() = 0;

 protected:
  std::atomic<bool> stop_{false};
};


